package org.jeecg.modules.qyxxora.service;

import org.jeecg.modules.qyxxora.entity.dto.StatCommonDto;
import org.jeecg.modules.qyxxora.vo.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * @author chensherun on 2022/1/13.
 * @version 1.0
 */
public interface IStatisticsService {

    /**
     * 生产要素的最大属期
     * @return
     */
    String selectScyszbjcMaxSsny(String year);

    /**
     * 查询各城市预警信息
     * @param ssny
     * @return
     */
    List<StatCityWarningVo> selectCityWarning(String ssny);

    /**
     * 查询下级机构网点预警和响应统计（含下下级等）
     * @param ssny
     * @param saleNetCode
     * @return
     */
    List<StatChildOrgWarningVo> selectChildOrgWarning(String ssny, String saleNetCode);

    List<WarningConditionVo> selectAreaWarning(String ssny);

    /**
     * 预警情况(省)
     * @param ssny
     * @param saleNetCode
     * @return
     */
    StatWaringSituation selectStatWaringSituation(String ssny, String saleNetCode);

    /**
     * 响应情况
     * @param ssny
     * @param saleNetCode
     * @return
     */
    StatResponseSituation selectStatWarningResponseSituation(String ssny, String saleNetCode);

    /**
     * 按指标类型预警响应情况
     * @param ssny
     * @param saleNetCode
     * @return
     */
    List<StatIndexWarningResponseVo> selectStatIndexWarningResponse(String ssny, String saleNetCode, String zblxItemVaues);

    List<ResponseConditionVo> selectAreaResponse(String ssny);

    List<WarningConditionVo> selectDistrictWarning(List<String> ids,String ssny);

    List<ResponseConditionVo> selectDistrictResponse(List<String> ids,String ssny);

    List<String> selectIdByCode(String code);

    /**
     * 按企业类型统计预警情况
     * @param ssny
     * @param saleNetCode
     * @return
     */
    List<StatWarningByOrgTypeVo> selectWarningByOrgType(String ssny, String saleNetCode, String dictItmes);
    /**
     * 按企业类型统计响应情况
     * @param ssny
     * @param saleNetCode
     * @return
     */
    List<StatResponseByOrgTypeVo> selectResponseByOrgType(String ssny, String saleNetCode, String dictItems);
   // List<WarningByOrgTypeVo> selectWarningByOrgType(String ssny, String saleNetCode);

    List<WarningByIndustryTypeVo> getWarningByIndustryType(StatCommonDto statCommonDto);

    List<ResponseByIndustryTypeVo> getResponseByIndustryType(StatCommonDto statCommonDto);

    /**
     * 预警趋势变化图
     * @param ssnyq
     * @param ssnyz
     * @param saleNetCode
     * @return
     */
    List<StatWarningTrendChartVo> selectWarningTrendChart(String ssnyq, String ssnyz, String saleNetCode);

    /**
     * 预警影响趋势变化图
     * @param ssnyq
     * @param ssnyz
     * @param saleNetCode
     * @return
     */
    List<StatResponseTrendChartVo> selectResponseTrendChart(String ssnyq, String ssnyz, String saleNetCode);

    List<Map<String, Object>> testListParm(String itemValues);

    /**
     * 解析走访数据Excle
     *
     * @param file
     */
    boolean analysisInterviewDataExcle(MultipartFile file,String ssny);
}
